package ch03;

import java.util.Arrays;

/**
 * 定义一个整型数组，实现降序排序，打印输出排序的结果
 * @author yang
 * @date 2024-04-09
 */
public class MyArrays {
    public static void main(String[] args) {
        //1.初始化一个整型数组
        Integer[] numbers = {4, 5, 3, 2, 7, 9, 0, 1, 6, 8};
        /**
         * 方法一：使用 Arrays.sort()
         */
//        //2.使用 Arrays.sort() 进行升序排序
//        Arrays.sort(numbers);
//        //3.进行降序排
//        for (int i = 0; i < numbers.length / 2; i++) {
//            //1)定义一个变量 n 保存当前数组元素
//            int n = numbers[i];
//            //2)将数组末尾对应的值覆盖当前值
//            numbers[i] = numbers[numbers.length - i - 1];
//            //3)将变量 n 覆盖数组末尾对应的值
//            numbers[numbers.length - i - 1] = n;
//        }
//        //4.打印输出结果
//        System.out.println(Arrays.toString(numbers));

        new MyArrays().descOrder(numbers);
        System.out.println(Arrays.toString(numbers));

    }

    /**
     * 方法二：使用 Arrays.sort(T[] a, Comparator<? super T> c) 方法
     * @param numbers 需要排序的包装类整型数组
     */
    public void descOrder(Integer[] numbers){
//        Arrays.sort(numbers, new Comparator<Integer>(){
//            @Override
//            public int compare(Integer n1, Integer n2) {
//                return n2.compareTo(n1);
//            }
//        });
        Arrays.sort(numbers, (n1, n2) -> n2.compareTo(n1));
    }
}
